Houdiniメモ : TubeをTorusへ座標変換する
Tubeをトーラスへ変換するVEXの紹介
■Tube
table:パラメータ
Primitive Type Polygon
Center {0, 0.5, 0}
Height 1
https://gyazo.com/94d7e107e0dfbd5cec50df2c3638f694
■AttributeWrangle
VEXでTubeをトーラスへ変換します。
https://gyazo.com/e66c18def784d3a1701bcdc88a34d3c8
code:VEX(c)
float R = chf("R"); // トーラスの半径 R
float r = chf("r"); // トーラス断面の半径 r
float radian1 = @P.y * 2 * $PI; // トーラスの断面の角度
float radian2 = atan2(@P.z, @P.x); // トーラス断面円の点の角度
vector center = set(cos(radian1), 0, sin(radian1)) * R; // トーラス断面の中心位置
vector bottom = normalize(center); // トーラス断面内での横方向ベクトル
vector up = set(0, 1, 0); // トーラス断面内での上方向ベクトル
// トーラス上の点の座標として設定
@P = center + r * (bottom * cos(radian2) + up * sin(radian2));
■イメージ図
https://gyazo.com/3084da7315de6ef96111cec189e1d533
■ hipファイル